package com.hspedu.abstract_;

//抽象类细节02
/*
    1.抽象类可以有任何成员[抽象类本质还是类]，比如：抽象方法，构造器，静态属性等等
    6.抽象方法不能有体，即不能实现
    7.如果一个类继承了抽象类，则它必须实现抽象类的所有抽象方法，除非它自己也声明为abstract类
    8.抽象方法不能使用private,final和static来修饰，因为这些关键字都是和重写相违背的
 */

public class Abstract_detail02 {
    public static void main(String[] args) {

    }
}

//抽象类可以有任何成员[抽象类本质还是类]，比如：抽象方法，构造器，静态属性等等
abstract class D{
    public int n1 = 10;
    public static String name;
    public void hi(){
        System.out.println("hi");
    }
    public abstract void hello();
    public static void ok(){
        System.out.println("ok");
    }
}

//如果一个类继承了抽象类，则它必须实现抽象类的所有抽象方法，除非它自己也声明为abstract类
abstract class E{
    public abstract void hi();
}
//class F extends E{
//    //error:类“F”必须声明为抽象，或为实现“E”中的抽象方法“hi()”
//}
class F extends E{
    //重写hi()方法
    @Override
    public void hi() {

    }
}